var Fields = {};

window.onload = function () {
	// surenka laukus, kurie bus ne kartą reikalingi
	Fields.message = document.getElementById("login_msg");
	Fields.email = document.getElementById('login_email');
	Fields.password = document.getElementById('login_password');
	Fields.navbarLogin = document.getElementById('navbar_login');
};


function do_login() {
	// tikrina ar teisingi formos duomenys
	var checkResult = checkForm();
	
	//mėgina jungtis arba praneša, kas blogai	
	if (checkResult.success) {
		// ajaxPost processlogin
		var paramArr = new Array();
		paramArr['challenge'] = MD5(MD5(checkResult.password)+challengeVar);
		paramArr['login_email'] = trim(Fields.email.value);
		ajaxPost("/wordage/account/processlogin", paramArr, function() {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				completeLogin(JSON.parse(xmlhttp.responseText));
			}
		});		
	} else {
		// praneša, kas blogai įvesta formoje
		// arba kodėl nepavyko prisijungti
		completeLogin(checkResult);
	}
}

function completeLogin(result) {
	if (result.success) {
		Fields.navbarLogin.innerHTML = "Atsijungti";
	} else {
		Fields.navbarLogin.innerHTML = "Prisijungti";
	}
	// nustato pranešimo stilių
	MessageManager.setMessageStyle(Fields.message, result.success);
	// parodyti messages
	Fields.message.innerHTML = result.messages.join("<br />");	
	
	// laukai (field), kuriems reikia prikabinti handlerius ir 
	// įvykiai (event), kuriems įvykus tuose laukuose, turi būti
	// panaikinamas pranešimo tekstas ir pašalinami visi
	// handleriai
	var fields_and_events = [{field:Fields.password, event:"change"},
					          {field:Fields.email, event:"change"},
					          {field:Fields.password, event:"keyup"},
					          {field:Fields.email, event:"keyup"},
					          {field:Fields.message, event:"click"}];
			
	// prikabinami handleriai, išvalantys pranešimo tekstą ir 
	// atkabinantys save pačius
	MessageManager.attachHandlers(fields_and_events, Fields.message);
}

function checkForm() {
	var valid = true;
	var messages = new Array();
	
	// check 'email' field
	if(isBlank(Fields.email)) {
		messages.push("Koks el. paštas?");
		valid = false;
	}
	// check 'password' field	
	if(isBlank(Fields.password)) {
		messages.push("Koks slaptažodis?");
		valid = false;
	}
	
	var result = {};
	if (valid) {
		result.password = Fields.password.value;
	}
	Fields.password.value='';
	result.messages = messages;
	result.success = valid;

	return result;               
}